package com.traffic.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 请假申请对象 per_leave_requests
 * 
 * @author 郭世纪
 * @date 2024-12-08
 */
public class PerLeaveRequests extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long overtimeId;

    /** 用户姓名 */
    @Excel(name = "用户姓名")
    private String userName;

    /** 所属部门 */
    @Excel(name = "所属部门")
    private String department;

    /** 请假类型 */
    @Excel(name = "请假类型")
    private String leaveType;

    /** 人员类型 */
    @Excel(name = "人员类型")
    private String personnelType;

    /** 请假开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "请假开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date leaveStartDate;

    /** 请假结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "请假结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date leaveEndDate;

    /** 请假天数 */
    @Excel(name = "请假天数")
    private Long leaveDay;

    /** 审批状态 */
    @Excel(name = "审批状态")
    private String approvalStatus;

    /** 提交人 */
    @Excel(name = "提交人")
    private String submitter;

    /** 审批人 */
    @Excel(name = "审批人")
    private String approve;

    /** 紧急联系人 */
    @Excel(name = "紧急联系人")
    private String emergencyContact;

    /** 请假原因 */
    @Excel(name = "请假原因")
    private String reason;

    /** 审批人备注 */
    @Excel(name = "审批人备注")
    private String approvalComments;

    /** 上传证明文件的URL */
    @Excel(name = "上传证明文件的URL")
    private String uploadedProofUrl;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creatTime;

    public void setOvertimeId(Long overtimeId) 
    {
        this.overtimeId = overtimeId;
    }

    public Long getOvertimeId() 
    {
        return overtimeId;
    }
    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String getUserName() 
    {
        return userName;
    }
    public void setDepartment(String department) 
    {
        this.department = department;
    }

    public String getDepartment() 
    {
        return department;
    }
    public void setLeaveType(String leaveType) 
    {
        this.leaveType = leaveType;
    }

    public String getLeaveType() 
    {
        return leaveType;
    }
    public void setPersonnelType(String personnelType) 
    {
        this.personnelType = personnelType;
    }

    public String getPersonnelType() 
    {
        return personnelType;
    }
    public void setLeaveStartDate(Date leaveStartDate) 
    {
        this.leaveStartDate = leaveStartDate;
    }

    public Date getLeaveStartDate() 
    {
        return leaveStartDate;
    }
    public void setLeaveEndDate(Date leaveEndDate) 
    {
        this.leaveEndDate = leaveEndDate;
    }

    public Date getLeaveEndDate() 
    {
        return leaveEndDate;
    }
    public void setLeaveDay(Long leaveDay) 
    {
        this.leaveDay = leaveDay;
    }

    public Long getLeaveDay() 
    {
        return leaveDay;
    }
    public void setApprovalStatus(String approvalStatus) 
    {
        this.approvalStatus = approvalStatus;
    }

    public String getApprovalStatus() 
    {
        return approvalStatus;
    }
    public void setSubmitter(String submitter) 
    {
        this.submitter = submitter;
    }

    public String getSubmitter() 
    {
        return submitter;
    }
    public void setApprove(String approve) 
    {
        this.approve = approve;
    }

    public String getApprove() 
    {
        return approve;
    }
    public void setEmergencyContact(String emergencyContact) 
    {
        this.emergencyContact = emergencyContact;
    }

    public String getEmergencyContact() 
    {
        return emergencyContact;
    }
    public void setReason(String reason) 
    {
        this.reason = reason;
    }

    public String getReason() 
    {
        return reason;
    }
    public void setApprovalComments(String approvalComments) 
    {
        this.approvalComments = approvalComments;
    }

    public String getApprovalComments() 
    {
        return approvalComments;
    }
    public void setUploadedProofUrl(String uploadedProofUrl) 
    {
        this.uploadedProofUrl = uploadedProofUrl;
    }

    public String getUploadedProofUrl() 
    {
        return uploadedProofUrl;
    }
    public void setCreatTime(Date creatTime) 
    {
        this.creatTime = creatTime;
    }

    public Date getCreatTime() 
    {
        return creatTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("overtimeId", getOvertimeId())
            .append("userName", getUserName())
            .append("department", getDepartment())
            .append("leaveType", getLeaveType())
            .append("personnelType", getPersonnelType())
            .append("leaveStartDate", getLeaveStartDate())
            .append("leaveEndDate", getLeaveEndDate())
            .append("leaveDay", getLeaveDay())
            .append("approvalStatus", getApprovalStatus())
            .append("submitter", getSubmitter())
            .append("approve", getApprove())
            .append("emergencyContact", getEmergencyContact())
            .append("reason", getReason())
            .append("approvalComments", getApprovalComments())
            .append("uploadedProofUrl", getUploadedProofUrl())
            .append("creatTime", getCreatTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
